home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 1997 #3 / Amiga Plus CD - 1997 - No. 03.iso / pd / programmierung / alienbreed3d2_src / cheesesauce / shadepal.s < prev    next >
Text File  |  1997-01-31  |  1KB  |  87 lines

  1. INPUTS:
  2.  dc.l 0
  3.  dc.l 0
  4.  dc.l 0
  5.  dc.l 0
  6.  dc.l 0
  7.  
  8. START:
  9.  
  10.  lea INPUTS(pc),a0
  11.  
  12.  move.l (a0),a1
  13.  move.l 16(a0),a2
  14.  
  15.  move.w #0,d0
  16. PALOP:
  17.  move.w #0,d1
  18. ALOP:
  19.  move.w #32,d2
  20.  sub.w d1,d2
  21.  move.w #7,d3
  22.  move.l 12(a0),a6
  23.  move.l 8(a0),a5
  24.  move.l 4(a0),a4
  25.  move.w d0,d4
  26.  move.w d0,-(a7)
  27.  asl.w #5,d4
  28.  add.w d4,a6
  29.  add.w d4,a5
  30.  add.w d4,a4
  31. QLOP:
  32.  move.l (a4)+,d4
  33.  move.l (a5)+,d5
  34.  move.l (a6)+,d6
  35.  muls d2,d4
  36.  muls d2,d5
  37.  muls d2,d6
  38.  asr.l #5,d4
  39.  asr.l #5,d5
  40.  asr.l #5,d6
  41.  move.l #10000000,d7
  42.  movem.l d1/d2/d3/a1,-(a7)
  43.  
  44.  move.w #255,d0
  45. findbest:
  46.  
  47.  move.l (a1)+,d1
  48.  sub.l d4,d1
  49.  muls d1,d1
  50.  move.l (a1)+,d2
  51.  sub.l d5,d2
  52.  muls d2,d2
  53.  move.l (a1)+,d3
  54.  sub.l d6,d3
  55.  muls d3,d3
  56.  
  57.  add.l d3,d2
  58.  add.l d2,d1
  59.  
  60.  cmp.l d1,d7
  61.  blt.s .notnewbest
  62.  
  63.  move.l d1,d7
  64.  move.b d0,d1
  65.  swap d0
  66.  move.w d1,d0
  67.  swap d0
  68.  
  69. .notnewbest: 
  70.  dbra d0,findbest
  71.  
  72.  movem.l (a7)+,d1/d2/d3/a1
  73.  
  74.  swap d0
  75.  not.b d0
  76.  move.b d0,(a2)+
  77.  
  78.  dbra d3,QLOP
  79.  move.w (a7)+,d0
  80.  addq #1,d1
  81.  cmp.w #32,d1
  82.  blt ALOP
  83.  addq #1,d0
  84.  cmp.w #4,d0
  85.  blt PALOP
  86.  
  87.  rts